1. Technical Field
The embodiment of the invention relates generally to testing an integrated circuit and more particularly to on-chip detection of the types of operations run by an LBIST on an integrated circuit for a test program.
2. Description of Related Art
Modern electronic devices, such as microprocessors, often include a matrix of logic gates arranged to perform particular tasks and functions. These logic gates are often interconnected in two parallel arrangements, one arrangement for normal operation, and another arrangement for testing circuit functionality. Coupling multiple latches together into a scan chain is one method of arranging logic units for both operational and testing functionality.
One example of the circuitry included on-chip for an integrated circuit to test its own functionality is referred to as a Logic Built-In Self Test (LBIST). In a lab environment and in a manufacturing environment, LBIST is a test mechanism that generates pseudo-random test data to apply to scan chains within the integrated circuit and outputs the results of the test data applied to the scan chains. A test program specifies one or more types of operations for the LBIST to execute on the test data through the scan chains.
A test program is considered as passing when, after the test program is executed, the output of the scan chains in a register matches an expected output from the scan chains. There are circumstances that can occur, however, that allow the test program to pass because the output of the scan chains in the register matches an expected output from the scan chains, but where the test program includes operations that were inadvertently added and not desired or where the test program does not run all the desired operations. For example, a user may intend to run an LBIST test program that only includes operations for functional cycles, but a typographical error introduced during programming could result in the test program also executing a scan only sequence. In another example, a user may run an LBIST test program that includes operations for scan cycles, a force update for non-scan latches, and functional cycles, but the LBIST controller may not execute the operations for the force update for non-scan latches. In these examples, while the LBIST controller does not execute the expected operations for a test program, the output of the scan chains may still match the expected output from the scan chains and the test program would pass.